/**
 * 
 */
package org.vsg.stock.core.indicator.kline;

import java.util.Date;
import java.util.List;

import org.vsg.stock.core.kline.DailyKLineStock;

/**
 * @author Bill Vison
 *
 */
public abstract class TrendingCycle {
	
	
	/**
	 * start date in refered running cycle
	 * @param startDate
	 * @return
	 */
	abstract Date getStartDate();
	
	/**
	 * end date in refered running cycle
	 */
	abstract Date getEndDate();
	
	/**
	 * get list of this selected cycle
	 * @return
	 */
	abstract List<DailyKLineStock>  getSelectedCycleList();
	
	
	/**
	 * the length of cycle
	 * @return
	 */
	abstract int getLength();
	
	
	abstract Trending getTrending();
	
	
	public enum Trending {
		UPWARD , DOWNWARD , ESTIMATED_UPWARD , ESTIMATED_DOWNWARD
	}

}
